package MULE.Model;

/**
 * Represents the Mountain tile.
 * 
 * @author Aaron Englebardt version 1.1 10.16.2013
 * 
 */
abstract class Mountain extends ResourceTile {

	/**
	 * Creates a new Mountain tile at the specified coordinates.
	 * 
	 * @param x
	 *            X-coordinate of the tile.
	 * @param y
	 *            Y-coordinate of the tile.
	 */
	public Mountain(int x, int y) {
		super(x, y);
	}

	/**
	 * Returns a new mountain of specified type (1, 2, or 3).
	 * 
	 * @param n
	 *            The mountain type.
	 * @param x
	 *            X-coordinate of the mountain.
	 * @param y
	 *            Y-coordinate of the mountain.
	 * @return New mountain of specified type.
	 */
	public static Mountain getMountainOfType(int n, int x, int y) {
		if (n == 1) {
			return new Mountain1(x, y);
		} else if (n == 2) {
			return new Mountain2(x, y);
		} else if (n == 3) {
			return new Mountain3(x, y);
		}
		// Unspecified type.
		return null;
	}
}
